// ImeiEngine.h
//

#ifndef ImeiEngine_H
#define ImeiEngine_H


#include <e32base.h>
#include "osdefine.h"
#include "QWString.h"
//////////////////////////////////////////////////////////////////////////

#ifndef __SERIES60_3X__

#include <plpvariant.h>// 

class CImeiEngine 
{
public:
	EXPORT_C static void GetIMEIL(TDes& aIMEI);
	EXPORT_C static void GetIMEIL(CQWString & strIMEI) ;
};


#else 

#include <Etel3rdParty.h>

class CImeiEngine : public CActive
    {
public:
    EXPORT_C static void GetIMEIL(TDes& aIMEI);
	EXPORT_C static void GetIMEIL(CQWString & wstrIMEI, CQWString & wstrMan, CQWString & wstrModel) ;

	static void GetIMSIL(TDes& aIMEI);
protected:
    void DoCancel();
    void RunL();
    
private:
    static CImeiEngine* NewLC();
    static CImeiEngine* NewL();
    ~CImeiEngine();

    CImeiEngine();
    void ConstructL();

    void GetPhoneId();

private:
    CTelephony* iTelephony;
    CTelephony::TCancellationRequest iRequest;
    CTelephony::TPhoneIdV1 iPhoneIdV1;
    CTelephony::TPhoneIdV1Pckg iPhoneIdV1Pckg;
    
//    CTelephony::TSubscriberIdV1 iSubIdV1;
//    CTelephony::TSubscriberIdV1Pckg iSubIdV1Pckg;
    };
#endif
#endif // ImeiEngine_H
